The present invention relates to a method and apparatus for filtering a digital packet data stream as used in a digital audiovisual transmission system, in particular a packet data stream conforming to an MPEG format for a digital television system.
Conventional digital television broadcast systems transmit data in the form of discrete transport stream packets or transport packets, each packet being of a predetermined length and containing a header and a payload. The MPEG-2 standard is the currently favoured standard in this domain and sets out a predetermined format for transport packets.
The packet header comprises general descriptive data regarding the packet, whilst the payload comprises the data to be processed at the receiver. The packet header includes a packet ID or PID identifying the packet. The payload of the packet may contain audio, video or other data such as application data processed by the receiver/decoder to provide extra functions, for example to generate a program guide or other visual data that may be superimposed on the screen over the normally displayed program.
Conventionally, the incoming data stream is filtered by a receiver/decoder according to the PID of each packet. Demultiplexed visual and audio data is then passed directly to dedicated processor elements in the receiver/decoder adapted to generate real time visual and audio images respectively. Teletext and subtitle data are similarly passed directly to the general microprocessor of the receiver/decoder to generate real time teletext and subtitle displays.
Data requiring immediate processing such as visual, audio, teletext and subtitle data is communicated to an appropriate processor in the form of what is conventionally known as a packetised elementary stream or PES. This continuous flux of data, which is formed by assembling the payloads of the transport packets, itself comprises a sequence of packets, each PES packet comprising a packet header and payload. Unlike the transport packet data, the length of a PES packet is variable. The filtered PES streams are processed immediately in order to provide a real time operation.
Whilst visual, audio, teletext or subtitle data are the most common types of data defined by a PES stream, other flux type data may equally be organised as a PES stream.
In addition to PES stream data, other data not requiring immediate processing may also be contained within the payloads of the transport packets. Unlike PES data, which is treated immediately by a processor to generate a real time output, this data is typically processed in an asynchronous manner by the processor. The data is often cyclical, i.e. the functions defined by the data are called up at several intervals by a processor. An example of data of this kind is the so-called Programme Specific Information or PSI data.
In this case, the data contained in the payload of the transport packets is divided into a series of sections or tables, each including a header and a payload, the header including a table ID or TID identifying the table. After the initial PID filtering, a second stage of filtering based on the section header is used to divide out modules with the same TID, and the payloads of these modules are stored and gradually assembled in a memory element in the receiver/decoder to build up the downloaded application. Unlike PES data, the order in which the sections arrive is not important, since the application is assembled over a period of time.
An example of a conventional decoder architecture for filtering PES and PSI type data is shown in the European Patent Application EP 0735776 (Hitachi). Transport packet data is initially stored in a packet landing buffer, after which an initial stage of PID filtering is carried out. Audio and video PES data is immediately passed to audio and video decoders for real-time processing, whilst a second stage of filtering at the PSI section header or TID level is carried out for PSI data, such data being thereafter stored in a system decoder buffer.
The European Patent Application EP 0714213 (LG Electronics) describes a similar decoder architecture and, in addition, discusses the analysis of adaptation field or ADF data contained in the header of transport packets used to convey PES data.
Whilst the use of a set of assembled sections enables complex applications to be downloaded and executed by the microprocessor, the steps required in this process lead to a relatively long processing time since all tables having the same TID must be identified, filtered out and stored in the memory before the application is complete.
It is an object of the present invention to provide a method and apparatus for filtering transmitted data packets which overcomes the disadvantages of the known packet filtering systems.
According to one aspect of the present invention, there is provided a method of filtering a packet data stream as transmitted in an digital audiovisual transmission system and received by a receiver/decoder characterised in that transport packet data is filtered at a first stage by a first digital filter according to the characteristics of the transport packet header, selected filtered data then being passed directly to a memory element within the receiver/decoder.
This method of treating the packet data represents a radical departure to the conventional method, in which data filtered according to the PID packet header value is either sent directly (in the form of a PES stream) to a dedicated processor or is filtered in a second stage according to a TID or PSI header value before being assembled in the memory of the decoder.
By storing transport packet data directly after a first stage filtering, the present invention permits the direct and rapid processing of data that would otherwise have to be compiled over a period of time by assembling a series of tables etc. For example, raw or native data may be carried in the payload of the transport packet for storage in the memory and subsequent use by the main processor of the receiver/decoder.
The transport packet data may be filtered at least according to the value of a packet ID or PID within the transport packet header. However, in a preferred embodiment the data may be filtered according to other bit values within the transport packet header in addition to the value of the packet ID.
The data passed to and stored in the memory element may correspond to only a part of a transport packet, for example, the payload of a packet. Preferably, however, a complete transport packet including the packet header and payload is passed to and stored in the memory element. This facilitates later treatment of the packet data. For example, it may be desired to carry out an analysis of the transport packet header characteristics.
In the case where an MPEG-type format is used, the transport packet data is transmitted in packets of fixed size. In one advantageous embodiment, a filtered packet is passed to a memory element having the same size as the fixed packet size.
Data contained within the payload of the transport packet may itself be organised in the form of secondary packets of data each with a header and a payload. Unlike the transport packets, these secondary data packets may have a variable packet length.
In particular, in the case where the transmitted data is organised in an MPEG format, the data contained in the payload of an MPEG transport packet may be organised in the form of a packetised elementary stream or PES. This packetised elementary stream may correspond to a video, audio, teletext, subtitle or other packetised elementary stream which may be processed directly by a corresponding processor of the receiver/decoder.
In addition to passing selected packets to a memory element, the digital filter may also be used to pass selected data to a processor, e.g. to pass selected data to a visual processor to generate an image, without first being stored in a memory element.
Data may be passed to a processor for execution either directly or via a second digital filter stage. In the case where data contained in the payload of transport packets is organised in the form of secondary data packets, the second digital filter may filter the packets based on the value of one or more elements of the header of the secondary packets of data.
Data filtered by the second digital filter may be passed to an associated memory element for storage and/or to a processor for decoding after having been filtered.
According to a second aspect, the present invention comprises a method of filtering a packet data stream as transmitted in an digital audiovisual transmission system and received by a receiver/decoder characterised in that transport packet data is filtered at a first stage by a first digital filter according to the characteristics of the transport packet header, selected filtered data from the payload corresponding to a continuous flux of data then being passed to a second digital filter for a second stage of filtering.
Again, unlike known systems, the payload data subjected to the second filtering stage corresponds to a continuous flux of data, rather than, for example, a set of tabulated sections that are assembled over a period of time.
As with the first aspect of the invention, the continuous flux of data contained in the payload of transport packets may further be organised in the form of secondary data packets, the second digital filter acting to filter the packets based on the value of one or more elements of the header of the secondary packets of data.
This aspect of the present invention is particularly applicable to a method of filtering a packet data stream in which the transmitted data is organised in an MPEG format, notably in which the continuous flux of data contained in the payload of a filtered and stored MPEG packet is organised in the form of a packetised elementary stream.
As before, data filtered by the second digital filter may be passed to an associated memory element for storage and/or to a processor for execution, depending on the results of the filtering.
As will be appreciated, any of the methods of filtering packet data described above, according to either the first or second aspects of the present invention, may be carried out in parallel with other filtering of the transport packet data. In particular, filtering of transport packet data may also be carried out according to the value of the PID of the transport packet stream so as to divide out packetised elementary stream data to be sent to a corresponding processor element.
In addition, parallel filtering of transport packet data according to the value of the PID, followed by a further filtering of sections contained within the payload of a transport packet according to the value of the section header may also be carried out.
The present invention extends in one aspect to a receiver/decoder for a digital audiovisual transmission system comprising a first digital filter and memory element, characterised in that selected transport packet data is filtered at a first stage by the first digital filter according to the characteristics of the transport packet header and thereafter passed directly to the memory element.
The present invention equally extends to a receiver/decoder for a digital audiovisual transmission system comprising a first and second digital filter, characterised in that transport packet data is filtered at a first stage by the first digital filter, selected filtered data from the payload corresponding to a continuous flux of data then being passed to the second digital filter for a second stage of filtering.
In the context of the present application the term xe2x80x9cdigital audiovisual transmission systemxe2x80x9d refers to all transmission systems for transmitting or broadcasting primarily audiovisual or multimedia digital data. Whilst the present invention is particularly applicable to a broadcast digital television system such as a satellite, terrestrial or cable television system, the present invention may equally be used in filtering data sent by a fixed telecommunications network for multimedia internet applications, combination telecommunication and broadcast systems etc.
The term MPEG refers to the data transmission standards developed by the International Standards Organisation working group xe2x80x9cMotion Pictures Expert Groupxe2x80x9d and notably the MPEG-2 standard developed for digital television applications and set out in the documents ISO 13818-1, ISO 13818-2, ISO 13818-3, and ISO 13818-4. In the context of the present patent application, the term includes all variants, modifications or developments of the basic MPEG formats applicable to the field of digital data transmission.
Similarly, whilst the description refers to xe2x80x9creceiver/decodersxe2x80x9d and xe2x80x9cdecodersxe2x80x9d it will be understood that the present invention applies equally to embodiments having a receiver integrated with the decoder as to a decoder unit functioning in combination with a physically separate receiver, as well as decoder units incorporating other functionalities such as web browsers or decoders integrated with other devices, such as video recorders, televisions etc.